import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 487. 姓名去重
 * 给一串名字，将他们去重之后返回。两个名字重复是说在忽略大小写的情况下是一样的。
 * https://www.lintcode.com/problem/name-deduplication/description
 *
 * 样例
 * 例1:
 * 输入:["James", "james", "Bill Gates", "bill Gates", "Hello World", "HELLO WORLD", "Helloworld"]
 * 输出:["james", "bill gates", "hello world", "helloworld"]
 *
 * 例2:
 * 输入:["cmy","Cmy"]
 * 输出:["cmy"]
 *
 * 说明
 * 你可以假设名字只包含大小写字母和空格。
 *
 * @author jeymingwu
 * @date 2019/10/8 16:08
 */
public class L0487_Name_Deduplication {

    /**
     * @param names: a string array
     * @return: a string array
     */
    public List<String> nameDeduplication(String[] names) {
        // write your code here
        Set<String> set = new HashSet<>();
        for (int i = 0; i < names.length; ++i) {
            set.add(names[i].toLowerCase());
        }
        return new ArrayList<>(set);
    }
}
